package shm.capaDatos.entidades;

import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;

import shm.capaDatos.vo.OrganizacionVO;
import shm.capaDatos.vo.TipoRelacionVO;

@Entity
@DiscriminatorValue("O")
public class Organizacion extends CategoriaStakeholder{
	private static final long serialVersionUID = 1L;
	@Column(length=100,nullable = false, unique = false)
	private String nombre;
	@ManyToOne
	private TipoRelacion tipoRelacion;
	public Organizacion(Integer id, String descripcion, String nombre, TipoRelacion tipoRelacion, DatosAuditoria datosAuditoria) {
		super(id, descripcion, datosAuditoria);
		this.nombre = nombre;
		this.tipoRelacion = tipoRelacion;
	}
	public Organizacion(){
		super();
	}
	public OrganizacionVO getVO(){
		TipoRelacionVO tipoRelacionVO = null;
		if(this.tipoRelacion != null){
			tipoRelacionVO = this.tipoRelacion.getVO();
		}
		OrganizacionVO organizacionVO = new OrganizacionVO(super.getId(), super.getDescripcion(), this.nombre,tipoRelacionVO, super.getDatosAuditoriaVO());
		return organizacionVO;
	}
	public void setVO(OrganizacionVO organizacionVO){
		if(organizacionVO != null){
			TipoRelacionVO tipoRelacionVO = organizacionVO.getTipoRelacion();
			super.setVO(organizacionVO);
			this.nombre = organizacionVO.getNombre();
			if(tipoRelacionVO != null){
				if(this.tipoRelacion == null){
					this.tipoRelacion = new TipoRelacion();
				}
				this.tipoRelacion.setVO(tipoRelacionVO);
			}else{
				this.tipoRelacion = null;
			}
		}
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public TipoRelacion getTipoRelacion() {
		return tipoRelacion;
	}
	public void setTipoRelacion(TipoRelacion tipoRelacion) {
		this.tipoRelacion = tipoRelacion;
	}
}
